//== SAGITTARIUS ============================================================================

//== BEGINNING OF CODE ===============================================================

#ifndef __SAGITTARIUS__SIMPLE_UNICODE_CHAR__H_
#define __SAGITTARIUS__SIMPLE_UNICODE_CHAR__H_

//== INCLUDES ========================================================================

#include "sagittarius/core/SagittariusCore.hpp"
#include "sagittarius/core/BaseTypes.hpp"

namespace Sagittarius
{
    
    typedef unsigned int SimpleUnicodeChar;
    
    class SimpleUnicodeChar_EOF
    {
    };
    
    SimpleUnicodeChar SimpleUChar_FromStream(std::istream& is);
    
    const char* SimpleUChar_From_UTF_8_String(const char* start, const char* end_of_buffer, SimpleUnicodeChar& codepoint);
    
    int SimpleUChar_nBytes(SimpleUnicodeChar chr);
    
    char* SimpleUChar_toCStr(SimpleUnicodeChar codepoint, char* start, char* end_of_buffer);
    
    std::string SimpleUChar_toStdStr(SimpleUnicodeChar codepoint);
    
    //convert to std::string
    std::string SimpleUChar_ToCodepointString(SimpleUnicodeChar codepoint);
    
} //namespace Sagittarius

#endif
